/**
 * 存储localStorage
 */
export const setStore = (name, content) => {
	if(!name) return;
	if(typeof content !== 'string') {
		content = JSON.stringify(content);
	}
	window.localStorage.setItem(name, content);
}

/**
 * 获取localStorage
 */
export const getStore = name => {
	if(!name) return;
	return window.localStorage.getItem(name);
}

/**
 * 删除localStorage
 */
export const removeStore = name => {
	if(!name) return;
	window.localStorage.removeItem(name);
}

/**
 * 获取间隔多天后的日期 
 * 
 */

export const getDATE = (interval, format) => {
	var ms = interval * 86400000;
	var date = new Date(((new Date).getTime() + ms));
	var year = date.getFullYear();
	var month = date.getMonth() + 1;
	var monthF = (month < 10 ? "0" + month : month);
	var day = date.getDate();
	var dayF = (day < 10 ? "0" + day : day);
	if(format == "YYYY-MM-DD") return year + "-" + monthF + "-" + dayF;
	if(format == "MM-DD") monthF + "-" + dayF;
	if(format == "年月日") return year + "年" + monthF + "月" + dayF + "日";
	if(format == "月日") return monthF + "月" + dayF + "日";
}

/**
 * 标准日期转化为时间戳
 */
export const reverseDate = data_ => {
	if(!data_) return;
	data_ = data_.replace(/-/g, '/');
	return new Date(data_).getTime();
}
/**
 * 时间戳转化为标准日期
 */
export const toDate = result => {
	result = new Date(result)
	var y = result.getFullYear();
	var m = result.getMonth() + 1;
	m = m < 10 ? '0' + m : m;
	var d = result.getDate();
	d = d < 10 ? ('0' + d) : d;
	return y + '-' + m + '-' + d;
}
/**
 * 时间戳转化9月18日
 */
export const toMD = result => {
	result = new Date(result)
	var m = result.getMonth() + 1;
	m = m < 10 ? '0' + m : m;
	var d = result.getDate();
	d = d < 10 ? ('0' + d) : d;
	return m + '月' + d + '日';
}
/**
 * 从身份证获取出生日期
 */
function trim(s) { return s.replace(/^\s+|\s+$/g, ""); };
export const getBirthday = iIdNo => {
	var tmpStr = "";
	var idDate = "";
	var tmpInt = 0;
	var strReturn = "";

	iIdNo = trim(iIdNo);

	if((iIdNo.length != 15) && (iIdNo.length != 18)) {
		strReturn = "输入的身份证号位数错误!!";
		return strReturn;
	}

	if(iIdNo.length == 15) {
		tmpStr = iIdNo.substring(6, 12);
		tmpStr = "19" + tmpStr;
		tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6)

		return tmpStr;
	} else {
		tmpStr = iIdNo.substring(6, 14);
		tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6)

		return tmpStr;
	}
}
/**
 * 身份证严格校验
 */
export const IdentityCodeValid = code => {
	var city = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北 ", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏 ", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外 " };
	//var tip = "";
	var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
	var pass = true;
	if(!code || !reg.test(code)) {　　
		//tip = "身份证号格式错误";　　
		pass = false;
	} else if(!city[code.substr(0, 2)]) {　　
		//tip = "地址编码错误";　　
		pass = false;
	} else {　　 //18位身份证需要验证最后一位校验位
		　　
		if(code.length == 18) {　　
			code = code.split('');　　 
			//加权因子
			var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
			//校验位
			var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
			var sum = 0;
			var ai = 0;
			var wi = 0;
			for(var i = 0; i < 17; i++) {
				ai = code[i];
				wi = factor[i];
				sum += ai * wi;
			}
			
			var last = parity[sum % 11];
			if(parity[sum % 11] != code[17]) {
				//tip = "校验位错误";
				pass = false;
			}
		}
	}
	//if(!pass) alert(tip);
	return pass;
}
/**
 * 获取身份证中的性别
 */
export const gender = code => {
	code = Trim(code)
	var target = "";
	if(code.length==18){
		target = code.substr(-2,1)
	}else if(code.length==15){
		target = code.substr(-1,1)
	}
	var result = target%2 == 0? 2 : 1;
	return result;
}


/**
 * 获取返回请求中的新token
 */
export const getNewToken = header => {
	for(var i in header) {
		if(i == 'x-refresh-token') {
			return header[i];
		}
	}
}

/**
 * 获取地址栏参数
 */
export const getQueryString = name => {
	var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
	var r = window.location.search.substr(1).match(reg);
	if(r != null) return unescape(r[2]);
	return null;
}

/**
 * 去除字符串所有空格
 */
export const Trim = str => {
	if(str) return str.replace(/\s+/g, "")
	else return '';
}

/**
 * 去除字符串两头空格
 */
export const LRTrim = str => {
	if(str) return str.replace(/(^\s*)|(\s*$)/g, "");
	else return '';
}

/**
 * 去除字符串左边空格
 */
export const LTrim = str => {
	if(str) return str.replace(/^\s*/g, "");
	else return '';
}

/**
 * 去除字符串右边空格
 */
export const RTrim = str => {
	if(str) return str.replace(/\s*$/g, "");
	else return '';
}